home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Totally AMOS
/
Totally AMOS - Issue 1 (1991-11)(Tucker, Len - Tucker, Anne).adf
/
source_progs
/
Puzzle.AMOS
/
Puzzle.amosSourceCode
< prev
next >
Wrap
AMOS Source Code
|
1991-09-23
|
8KB
|
331 lines
'PPP U U ZZZZ ZZZZ L EEEE
'P P U U Z Z L E
'PPP U U Z Z L EEE
'P U U Z Z L E
'P UU ZZZZ ZZZZ LLLL EEEE
'
'A game by S.Raaijmakers
'
'I like to thank the makers of AMOS. They made it possible for me to finally
'make games myself.
'
'Off course this game is Public Domain, so copying it is free.
'In fact, I'd like you to copy it !
'
On Error Goto FOUT
Dim SCORE(6),NAME$(6),VELD(6),T(16)
BEGIN:
Unpack 2 To 0 : Screen Display 0,128,120,320,Screen Height : Hide
Fade 5,0,$200,$400,$600,$700,$900,$B00,$D00,$F00,$F22,$F44,$F66,$F99,$FBB,$FDD,$FFF
Wait 75 : Load "Blokjes.abk"
Screen Open 1,320,100,8,Lowres
Flash Off : Curs Off : Unpack 15 To 1 : Paper 0 : Pen 7
Screen Display 1,128,120,320,100 : Screen Hide 1 : Wait Vbl
Screen 0 : Fade 5 : Wait 75 : Unpack 3 To 0
Fade 5,0,$410,$620,$850,$A70,$B90,$DC0,$FF0 : Wait 75
Screen Open 2,320,32,8,Lowres
Flash Off : Curs Off : Unpack 14 To 2 : Reserve Zone 3
Screen Display 2,128,70,320,32
Colour 17,$922 : Colour 18,$C55 : Colour 19,0 : Screen Hide 2
Screen 0 : Fade 5 : Wait 75 : Ink ,1
LEVEL=1 : EIND=251520
WEG$=Space$(27)+Cright$+" "+Cright$+" "
For A=0 To 6 : SCORE(A)=0 : NAME$(A)="No Name - No Score" : VELD(A)=0 : Next A
Screen Open 0,320,256,32,Lowres : Screen To Front 1 : Screen To Front 2
Curs Off : Flash Off : Gr Writing 0 : Paper 0 : Pen 9
Unpack 13 To 0
REGENBOOG
Double Buffer
Paste Bob 134,21,18 : Ink 0 : Bar 173,21 To 185,33 : Ink 9
Randomize Timer
Reserve Zone 16
For A=1 To 3 : Bob A,82+26*A,76,A : Next A
For B=1 To 3 : For A=1 To 4 : Bob B*4+A-1,82+26*A,76+26*B,B*4+A-1 : Next A : Next B
Wait Vbl
For B=0 To 3 : For A=1 To 4 : Set Zone 4*B+A,82+26*A,76+26*B To 107+26*A,101+26*B : Next A : Next B
T(1)=1 : T(2)=2 : T(3)=3 : T(4)=0 : For A=5 To 16 : T(A)=A-1 : Next A
Limit Mouse 236,118 To 328,210
Channel 1 To Bob 16
Bob 16,0,0,16
Amal 1,"Loop: Let X=XM-128 ; Let Y=YM-42 ; Jump Loop"
Amal On 1
Goto SCHUDDEN
BESTURING:
Repeat
Inc TIJD
If TIJD>EIND and EIND>1 Then Goto GAMEOVER
Until Mouse Key=0
Bob 16,,,16
Repeat
Inc TIJD : Inc TIJD
If TIJD>EIND and EIND>1 Then Goto GAMEOVER
T$=Inkey$
If Scancode=69
A$="YOU ABORTED THE GAME AFTER "+(Str$(ZET)-" ")+" MOVES." : Ink 9,0 : Text 0,11,A$
Wait 80 : Ink 0 : Bar 0,5 To 320,12
Ink 9,0 : Text 0,11,"PRESS THE MOUSE BUD."
IN:
Repeat : M=Mouse Key : Until M<>0
Ink 0 : Bar 0,5 To 320,12
If M=1
Ink 9,0 : Text 0,11,"THE OTHER ONE, YOU WALLY !" : Wait 80
Ink 0 : Bar 0,5 To 320,12 : Goto IN
Else
Sam Play 3,4,4000 : Goto QUIT
End If
Ink 0 : Bar 0,5 To 320,12
Goto SCHUDDEN
End If
Until Mouse Key=1
ZET=ZET+1 : Bob 16,,,17
Sam Play 3,4,8000
TIJD=TIJD+75
Z=Mouse Zone
If Z>4
If T(Z-4)=0
Bob T(Z),,Y Bob(T(Z))-26,T(Z)
T(Z-4)=T(Z) : T(Z)=0
End If
End If
If Z<13
If T(Z+4)=0
Bob T(Z),,Y Bob(T(Z))+26,T(Z)
T(Z+4)=T(Z) : T(Z)=0
End If
End If
If Z<>1 and Z<>5 and Z<>9 and Z<>13
If T(Z-1)=0
Bob T(Z),X Bob(T(Z))-26,,T(Z)
T(Z-1)=T(Z) : T(Z)=0
End If
End If
If Z<>4 and Z<>8 and Z<>12 and Z<>16
If T(Z+1)=0
Bob T(Z),X Bob(T(Z))+26,,T(Z)
T(Z+1)=T(Z) : T(Z)=0
End If
End If
If T(4)=0
If EIND>0
Goto GEHAALD
End If
End If
Goto BESTURING
GEHAALD:
For A=1 To 3
If T(A)<>A Then Goto BESTURING
Next A
For A=5 To 16
If A=9 or A=13
If T(9)<>8 and T(9)<>12
Goto BESTURING
Else
Exit 1
End If
If T(13)<>8 and T(13)<>12
Goto BESTURING
Else
Exit 1
End If
Else
If T(A)<>A-1
Goto BESTURING
End If
End If
Next A
A$="YOU SOLVED IT IN "+(Str$(ZET)-" ")+" MOVES.(REMARKABLE)" : Ink 9,0 : Text 0,11,A$
Sam Play 3,3,8000
Repeat : Until Mouse Key=2
Sam Play 3,4,4000
Ink 0 : Bar 0,5 To 320,12
Gosub HOPPA
PLAATS:
Ink 9,0 : Text 0,11,"HOLD YER BREATH. (LOADIN')"
If LEVEL=0 Then Load "Blokjes.abk" : LEVEL=1 : EIND=251520 : Goto TEST
If LEVEL=1 Then Load "Blokjes2.abk" : LEVEL=2 : EIND=125760 : Goto TEST
If LEVEL=2 Then Load "Blokjes3.abk" : LEVEL=3 : EIND=62880 : Goto TEST
If LEVEL=3 Then Load "Blokjes4.abk" : LEVEL=4 : EIND=31440 : Goto TEST
If LEVEL=4 Then Goto DEMO
TEST:
Ink 0 : Bar 0,5 To 320,12
Paste Bob 134,21,18 : Ink 0 : Bar 173,21 To 185,33 : Ink 9
Goto SCHUDDEN
GAMEOVER:
Ink 9,0 : Text 0,11,"GAME OVER, MAN ! (TIME SHORTAGE)"
Repeat : Until Mouse Key=2
Ink 0 : Bar 0,5 To 320,12
Gosub HOPPA
LEVEL=0 : Goto PLAATS
HOPPA:
Screen 1 : Screen Show 1
Screen To Front 1
SEC=TIJD/524 : SEC2=EIND/524
TMIN=SEC/60 : TMIN2=SEC2/60
PUNT=PUNT+((250-ZET)*10+(EIND-TIJD)*2^LEVEL)/100
Locate 10,1 : Print " " : Locate 30,1 : Print " "
Locate 10,1 : Print TMIN2;":";SEC2-TMIN2*60
Locate 30,1 : Print TMIN;":";SEC-TMIN*60
If TIJD>=EIND or LEVEL=4 Then Gosub SCORES
Repeat : Until Mouse Key=2
Screen Hide 1 : Screen 0 : Wait Vbl
Screen To Front 0
Return
SCHUDDEN:
TIJD=0
Ink 9,0 : Text 0,11,"SHUFFIN' IT ALL UP..."
T(1)=Int(Rnd(15)+0.5)
For A=2 To 16
TUSSEN:
T(A)=Int(Rnd(15)+0.5)
For B=1 To A-1
If T(A)=T(B) Then Goto TUSSEN :
Next B
Next A
Bell
For B=0 To 3
For A=1 To 4
If T(4*B+A)<>0
Bob T(4*B+A),82+26*A,76+26*B,T(4*B+A)
End If
Next A
Next B
Ink 0 : Bar 0,5 To 320,12
ZET=0
Goto BESTURING
SCORES:
If SCORE(6)>PUNT Then Return
For A=4 To 10
Locate 2,A : Print WEG$
Next A
Locate 2,5 : Print " Enter your name : "
Locate 2,7 : Print "_" : Locate 2,7
NAAM$=""
Do
A$=Inkey$
If Scancode>64
If Asc(A$)=13
Exit 1
End If
Else
If X Curs<28
Print A$; : NAAM$=NAAM$+A$
End If
End If
Loop
Sam Play 3,4,16000
If SCORE(5)>PUNT Then SCORE(6)=PUNT
For B=0 To 5
If PUNT>SCORE(B)
For A=5 To B Step -1
SCORE(A+1)=SCORE(A)
NAME$(A+1)=NAME$(A)
VELD(A+1)=VELD(A)
Next A
SCORE(B)=PUNT
NAME$(B)=NAAM$
VELD(B)=LEVEL
Exit 1
End If
Next B
For A=4 To 10
Locate 2,A : Print WEG$
Next A
For A=0 To 6
Locate 2,4+A : Print NAME$(A)
Locate 30,4+A : Print SCORE(A)
Locate 37,4+A : Print VELD(A)
Next A
Return
QUIT:
Screen Show 2
Screen 2
Screen To Front 2
Limit Mouse 128,70 To 434,89
Set Zone 1,37,7 To 90,24
Set Zone 2,133,7 To 186,24
Set Zone 3,229,7 To 282,24
Do
Repeat : Show : Until Mouse Key=1
If Mouse Zone=1
Screen Hide 2 : Screen 0 : Screen To Front 0
Load "Blokjes.abk"
Limit Mouse 236,118 To 328,210 : Hide On
EIND=-100
Goto SCHUDDEN
End If
If Mouse Zone=2
Screen Hide 2 : Screen 0
Limit Mouse 236,118 To 328,210 : Hide On
EIND=251520 : LEVEL=0 : Goto PLAATS
End If
If Mouse Zone=3
Screen Close 2 : Screen Close 1
Screen 0 : Screen To Front 0
Fade 5 : Wait 75 : Screen Close 0 : End
End If
Loop
DEMO:
Screen Open 0,320,100,16,Lowres
Double Buffer
Screen Display 0,128,110,320,100
Curs Off : Flash Off : Cls 0
Rainbow Del
Wait Vbl
Load "Ending.abk"
Get Sprite Palette
Channel 1 To Bob 1
Bob 1,0,60,1
Set Bob 1,1,,
LEM$="Anim 9,(1,12)(2,12);Move 160,0,200;"
LEM$=LEM$+"Anim 1,(1,8)(3,6)(4,30)(5,6)(6,30)(7,6)(8,6)(9,6)(10,30)(11,6)(12,6)(13,6)(14,1)"
Wait Vbl
Amal 1,LEM$
Amal On
Wait 280
Sam Play 3,2,8000
Wait 50
Sam Play 3,1,8000
Wait 100
Repeat : M=Mouse Key : Until M<>0
If M=1 Then Goto BEGIN
If M=2 Then Goto DEMO
Sam Play 3,3,4000
FOUT:
ERR=Errn
Screen Open 3,640,42,2,Hires
Wait Vbl
Curs Off
Palette 0,$F00
Cls 1
Ink 0 : Bar 8,4 To 632,37
Locate 13,1 : Print "Error in program. Press left mouse button to continue."
Locate 20,3 : Print "Guru Meditation. Error code";ERR
Do
Ink 0
Paint 2,2
For A=1 To 50
If Mouse Key=1 Then Screen Close 3 : Resume Next
If Mouse Key=2 Then End
Wait Vbl
Next A
Ink 1
Box 8,4 To 632,37
Paint 2,2
For A=1 To 50
If Mouse Key=1 Then Screen Close 3 : Resume Next
If Mouse Key=2 Then End
Wait Vbl
Next A
Loop
Procedure REGENBOOG
Set Rainbow 0,9,256,"","",""
Rainbow 0,0,40,16
Rain(0,7)=$630
Rain(0,8)=$970
Rain(0,9)=$CB0
Rain(0,10)=$FF0
Rain(0,11)=$FF0
Rain(0,12)=$CB0
Rain(0,13)=$970
Rain(0,14)=$630
End Proc